package edu.mis.modules.commodity;


import com.jfinal.core.Controller;
import edu.mis.model.Commodity;
import edu.mis.model.Variety;

/**
 * 商品控制器
 *
 */
public class CommodityController extends Controller{
	
    static CommodityService service = new CommodityService();
	
	public void index() {
		render("commodity.html");
	}
	
	public void list(){
		setAttr("data", service.findAllCommodityWithVariety());
		renderJson();  
	}

	/**
	 * 商品视图
	 */
	public void add() {
		    //render("add.html");  //（默认对应add.html，否则需显性指定，如render("addCommodity.html")）
	}

	public void register(){
		Commodity commodity  =  getModel(Commodity.class);   //使用getModel方法获取表单值，表单中name应使用对象名.属性名，如commodity.id, commodity.code,详见jfinal手册
		if(service.register(commodity)){
			setAttr("result", true); 
			setAttr("msg", "添加商品成功!"); 
		}else{
			setAttr("result",false);
			setAttr("msg", "添加商品失败，商品名重复!"); 
		}
		renderJson(); 
	}
	
	/**
	 * 修改编码视图（默认对应edit.html，否则需显性指定，如render("editCode.html")，）
	 */
	public void edit() {
		setAttr("commodity", service.findCommodityById(getParaToInt("id")));  //此处commodity应与表单中${(commodity.name)!}等中的commodity保持一致。
	}
	
	public void updateCode(){
		int id=this.getParaToInt("id");   //使用getPara获取表单值，与getModel方法获得表单值不同，name不能使用对象名.属性名，如commodity.code，而直接使用属性名，如code
		int newCode = this.getParaToInt("code");
		if(service.updateCode(id, newCode)){
			setAttr("result", true);
			setAttr("msg", "修改编码成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	/**
	 * 商品归类视图
	 */
	public void auth() {
		setAttr("commodity", service.findCommodityById(getParaToInt("id")));  //此处commodity应与表单中${(commodity.name)!}等中的commodity保持一致。
		setAttr("variety",Variety.dao.findAll());
	}
	
	/**
	 * 商品归类
	 */
	public void authorize(){
		int id=this.getParaToInt("id");   
		int varietyId = this.getParaToInt("varietyId");
		if(service.commodityAuthorize(id, varietyId)){
			setAttr("result", true);
			setAttr("msg", "商品归类成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	/**
	 * 删除商品
	 * 
	 */
	public void delete() {
		if(service.deleteCommodityById(getParaToInt("id"))){
			setAttr("result", true);
			setAttr("msg", "删除商品成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	
}
